//
//  OAuthViewController.swift
//  Sina
//
//  Created by maling  on 15/11/6.
//  Copyright © 2015年 maling . All rights reserved.
//

import UIKit
import SVProgressHUD
class OAuthViewController: UIViewController {
    
    /// 定义一个webView属性
    private lazy var webView = UIWebView()
    
    
    //返回上一个界面方法
    @objc private func clickBack() {
        
        SVProgressHUD.dismiss()
        
        /// 返回上一个见面
        dismissViewControllerAnimated(true, completion: nil)
        
    }
    
    @objc private func autoFill() {
        
        let js = "document.getElementById('userId').value = '951684507@qq.com';" +
        "document.getElementById('passwd').value = 'maling891224@***';"
        //加载显示到webView上面
        //        webView.loadHTMLString(js, baseURL: nil)
        //或者是
        webView.stringByEvaluatingJavaScriptFromString(js)
    }
    
    //加载OAuth见面
    override func loadView() {
        
//        super.loadView()
        
        view = webView
    
    ///  设置webView的代理
    webView.delegate = self
        
        
        
        title = "新浪Mal"
      navigationItem.leftBarButtonItem = UIBarButtonItem(title: "返回", style: .Plain, target: self, action:"clickBack" )
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "自动填充", style:  .Plain, target: self, action: "autoFill")
        
//   navigationItem.leftBarButtonItem = UIBarButtonItem(title: "关闭", style: .Plain, target: self, action: "clockBack")
        
        
        
    }

    
    override func viewDidLoad() {
        
//        view.backgroundColor =  UIColor.whiteColor()
         super.viewDidLoad()
        
        //加载显示界面（）
        self.webView.loadRequest(NSURLRequest(URL: NetworkTools.sharedTools.oauthURL))
//        self.webView.loadRequest(NSURLRequest(URL: NetworkTools.sharedTools.oauthURL))
        
    }
 
    
}

extension OAuthViewController: UIWebViewDelegate {

    
    //执行代理方法
    func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
        
        //目标： 如果是百度 就不去加载 先获取授权码
        //1.  判断访问的主机是否是www.baidu.com   
        guard let url = request.URL where url.host == "www.baidu.com" else {
        
            return true
            
        }
        
        //2.从百度地址的url 中取出 ‘code=’ 是否存在  code= 后面跟的就是授权码
        guard let quert = url.query where quert.hasPrefix("code=") else {
        
            print("取消授权")
            clickBack()
            return false
        
        }
        
        //3. 从 quert 字符串中提取“code=”后面的授权码
        let code = quert.substringFromIndex("code=".endIndex)
        print(quert)
        print("授权码是" + code)
        

        
        //4. 服务器加载令牌请求，返回数据给客户端（打印出来的）
        //   加载account_token
        UserAccountViewModel.sharedUserAccount.loadUserAccountToken(code) { (isSuccessed) -> () in
            
            if !isSuccessed {
//                print("返回数据失败")
                SVProgressHUD.showErrorWithStatus("你的网络不给力啊..")
                delay(0.5) {self.clickBack()}
                //下面也可以
//                delay(0.5, callFunc: { () -> () in
//                    
//                    self.clickBack()
//                })
            
            }
            
            
            print("返回数据成功")
            
            
            // dismissViewControllerAnimated 方法不会立即将控制器销毁，等dismiss后在发通知
            self.dismissViewControllerAnimated(false) {
                
                // 通知中心是同步的 一旦发送通知 就会先监听方法 直接结束后 才会执行后续代码
                NSNotificationCenter.defaultCenter().postNotificationName(WBSwitchRootViewControllerNotification, object: "welcome")
                
                
            }
            
        }
        
        return false
        
    }
    
    //
    func webViewDidStartLoad(webView: UIWebView) {
        SVProgressHUD.show()
    }
    
    func webViewDidFinishLoad(webView: UIWebView) {
        SVProgressHUD.dismiss()
    }
    

}





























